[HVM] Fix an error when read from APIC registers like IRR, ISR and TMR.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 13 Sep 2006 14:59:14 +0000 (15:59 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 13 Sep 2006 14:59:14 +0000 (15:59 +0100)
commitc7d036be9277592853b6ed6e5ef2691a8f0a487c
tree5347af64a71953cf58cab8feca3585c2312d67ca
parent37a7b1e0457a0ceec2a5bad4473000f81ef530dd
[HVM] Fix an error when read from APIC registers like IRR, ISR and TMR.
From SDM3 spec, for APIC registers, all 32-bit registers should
be accessed using 128-bit aligned 32bit loads or stores.
And wider registers (64-bit or 256-bit) must be accessed using
multiple 32-bit loads or stores.

In old APIC virtualization code, we use IRR, ISR and TMR which are
256-bit registers as contiguous bit maps other than multiple 32-bit.

So guest always fetch error values.

Original patch was:
 * Signed-off-by: Xiaohui Xin <xiaohui.xin@intel.com>
 * Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
 * Signed-off-by: Eddie Dong <eddie.dong@intel.com>

Signed-off-by: Keir Fraser <keir@xensource.com>
xen/arch/x86/hvm/vlapic.c
xen/include/asm-x86/hvm/vlapic.h